#ifndef _ODN_WORLD_SCENEOBJECT_H
#define _ODN_WORLD_SCENEOBJECT_H

//Engine headers
//#include "odn_Point.h"
#include "odn_scene_SceneElement.h"
#include "odn_util_Vector3D.h"

//using ouden::ODN_Point;
using ouden::utility::Vector3D;

namespace ouden
{
	namespace scene
	{
		
		//Main scene object class from which all scene objects are derived
		class ODN_SceneObject : public ODN_SceneElement//, public ODN_Point 
		{
		
		public:
		
		    //Constructor and destructor
		    ODN_SceneObject(ODN_Scene* Scene);
			
			virtual ~ODN_SceneObject()		{}
		
			//Pure virtual function called when object interacts with another object 
			virtual bool onInteractWith(ODN_SceneObject* OtherObject)		{} // = 0; 
			
			//Variable access functions
			bool isInteractive()		{ return interactive; }
			
			//Physical variables
			Vector3D boundingbox;	//Bounding box for the object representing half width and half height 
			
			Vector3D pos;
			
		private:
			
			//Property variables 
			bool interactive;	//Can the game object be interacted with? 
		
		};
		
	} //namespace scene
} //namespace ouden

#endif //_ODN_WORLD_SCENEOBJECT_H 
